package T2_10;


import java.util.HashMap;
import java.util.Map;

public class T8 {
    public int lengthOfLongestSubstring(String s) {
        //思路：遍历字符串，将遍历到的字符和对应位置存入hashmap中，定义一个变量i作为左指针
        //每当在hashmap中找到相同的字符，就更新i的值
        Map<Character,Integer> hashmap=new HashMap<>();
        int i=-1;
        int res=0;
        for (int j = 0; j < s.length(); j++) {
            //如果map中已经有了该字符，就将map中记录的位置给i
            if (hashmap.containsKey(s.charAt(j))){
                i=Math.max(i,hashmap.get(s.charAt(j)));
            }
            hashmap.put(s.charAt(j),j);
            res=Math.max(res,j-i);
        }
        return res;
    }
}
